package toubiao.service;

import java.rmi.UnexpectedException;
import java.util.List;

import toubiao.domain.po.manage.PoResource;
import toubiao.domain.vo.manage.Resource;
import toubiao.domain.vo.manage.User;
import toubiao.exception.CustomException;
import utils.easyui.domain.EzTree;


    /**
    * @ClassName: ResourceServiceI
    * @Description: TODO
    * @author 宁少林
    * @date 2016年8月28日
    *
    */
public interface ResourceServiceI {

	List<Resource> getResourceByAucType(String aucType);

	
	    /**
	    * @Title: getResourceListByUser
	    * @Description: 返回用户的所有资源
	    * @param @param user
	    * @param @return
	    * @param @throws CustomException    
	    * @return List<Resource>    
	    * @throws
	    */
	List<Resource> getResourceListByUser(User user) throws CustomException;

	
	    /**
	    * @Title: getResourceListByUserAndUrl
	    * @Description: 返回用户资源中，符合url的资源
	    * @param @param user
	    * @param @return
	    * @param @throws CustomException    
	    * @return List<Resource>    
	    * @throws
	    */
	List<PoResource> getResourceListByUserAndUrl(User user,String url)
			throws CustomException;


	
	    /**
	    * @Title: cycleCopyByChildrenSet
	    * @Description: 通过childrenSet循环复制，复制中忽略其他关联集合属性.
	    * @param @param source
	    * @param @return    
	    * @return PoResource    
	    * @throws
	    */
	PoResource cycleCopyByChildrenSet(PoResource source);


	List<EzTree> getResourceListAsEzTree(List<PoResource> poList)
				throws CustomException, IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException, InstantiationException, UnexpectedException;


	PoResource getPoResouceById(int id);

}
